ECat iOS SDK使用文档#
一、接入步骤#
1.1 SDK文件说明#
- libECat.a:SDK文件
- include
- ECat.h:API头文件
- ECatConfig.h
- ECatLog.h
1.2 SDK集成#
-
导入头文件
将include中的头文件拖入到工程目录
-
导入SDK
在xcode,拖动libECat.a至Build Phases->Link Binary With Libraries中
1.3 初始化#
在工程的AppDelegate.m文件导入头文件并完成初始化
// 导入库
#import "ECat.h"
// 在起始位置执行初始化
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//初始化配置(可选)
ECatConfig *config = [[ECatConfig alloc]init];
config.enableDebugMode = YES;//是否启用调试模式(默认:NO,正式发布的版本请设置为NO)
config.appVersion = @"2.0"; //应用版本
config.userId = @"uid01"; //用户id
config.lagThreshold = 5000; //卡顿阈值(单位:ms,有效值:2000-6000,默认:5000)
config.enableAllMonitor = YES; //设置是否在初始化时开启所有崩溃检测(默认:YES)
//初始化(必须)
[ECat startWithAppId:@"平台分配的AppId" config:config];
return YES;
}
1.4 符号文件上传#
有关符号文件的说明见《符号文件上传工具使用文档》
二、API说明#
/**
* 使用指定配置初始化ECat 调用后会初始化日志功能 执行初始化的操作
* @param appId 平台分配的AppId
* @param config 传入配置的 ECatConfig
*/
+ (void)startWithAppId:(NSString* ECat_NONNULL)appId
config:(ECatConfig* ECat_NULLABLE)config;
/**
* 设置用户Id, 在初始化后调用
* @param userId 用户标识
*/
+ (void)setUserId:(NSString *)userId;
/**
* 更新版本信息, 在初始后调用
* @param version 应用版本信息
*/
+ (void)setAppVersion:(NSString *)version;
/**
* 添加自定义键值对,随异常数据上传
* @param value Value
* @param key Key
*/
+ (void)addUserValue:(NSString *)value
forKey:(NSString *)key;
//删除键值对
+ (void)removeUserKey:(NSString *)key;
/**
* 设置标签
* @param tag 标签ID
*/
+ (void)setTag:(NSUInteger)tag;
/**
* 设置卡顿阈值,2000至6000,默认值:5000,单位:ms
* @param threshold 卡顿阈值
*/
+ (void)setLagThreshold:(int)threshold;
/**
* 停止卡顿检测
*
* @param duration 停止持续时间(单位:秒),duration > 0时,经过duration时间后卡顿检测再次开启,否则不再开启
*/
+ (void)stopLagMonitor:(int)duration;
/**
* 开启卡顿检测
*/
+ (void)startLagMonitor;
/**
* 开启所有异常检测
*/
+ (void)startAllMonitor;
/**
* 关闭所有异常检测
*/
+ (void)stopAllMonitor;
/**
* 获取ECat内部设备ID
* @return 设备ID
*/
+ (NSString*)getDeviceId;
/**
* 获取应用上次退出信息
* @return 上次退出信息(json格式),示例:{"type":"","crashUuid":"","crashTime":0,"finishCrashCallback":false}
* 字段说明:
* type:退出类型。取值范围:
* "":无崩溃
* "iOSCrash":崩溃
* "BlockCrash":iOS卡死崩溃
* "FOOM":iOS FOOM
* crashUuid:崩溃id。若上次退出类型为崩溃,则为该崩溃数据的id
* crashTime:崩溃时间(单位:毫秒)。若上次退出类型为崩溃,则为该崩溃的时间
* finishCrashCallback:是否完成CrashCallback崩溃回调。若上次崩溃后,执行了回调函数并且回调函数返回值为true,则为true,否则为false
*/
+ (NSString*)getLastExitInfo;
//设置崩溃回调
+ (void)setCrashCallback:(bool (*)(const char*))callback;
/**
* 上报捕获的Objective-C异常
* @param exception 异常信息
*/
+ (void)reportException:(NSException*)exception;
/**
* 上报错误
* @param error 错误信息
*/
+ (void)reportError:(NSError*)error;
/**
* 获取SDK 版本信息
* @return SDK版本号
*/
+ (NSString*)sdkVersion;
+ (void)testNativeCrash;
//通知应用即将退出,退出应用前调用此接口,以减少FOOM误报
+ (void)notifyAppWillQuit;